~
以上可以達成我們想要的功能,也沒什麼問題,那為什麼我們還需要 Closure?
Functions are first class citizens in Swift.
我們可以擁有一個是 function 的 property.
So why are callbacks better?
你可能需要多個 delegates,甚至需要多個 protocol.
可能會提高 retain cycles 的風險.
END
其實protocol本來用意就要求代理者必須實作相關功能 試想你今天寫了一個networkservice 給別人用 他怎麼會知道init完還要實作你的onCompleted才能正常work 又或者還有多少個需要實作的func 並沒有任何提示
但是你用protocol代理就被強制要求實做 這樣的方式相對安全
不好14現在才發現你有留言,混在其他訊息中了 Orz
我沒看錯的話 你的myviewcontroller跟networkservice 應該retain cycle了...
=> 對,你說得對,那邊我疏忽沒補上[weak self],原本程式碼的確會 retain cycle ,感謝您~
其實protocol本來用意就要求代理者必須實作相關功能...(省略) => 這個我反而覺得就是問題所在,如果今天是使用 @objc protocols 而不是 Swift 的 protocol 的話,它必須實現 protocol 裡面所有的 method ,且在 networkservice 的情況,他其實不需要知道誰去實現這些方法,他只要知道何時需要去調用即可~